Searching and displaying child objects of a parent object

ABSTRACT

A method for searching and displaying child objects of a parent object based on a drag event. The child objects are associated with the parent object. A computer displays a parent object, in response to that a user selects the parent object. The computer further receives from the user a drag event on the parent object. The computer further search child objects, based on a direction of a dragging movement in the drag event, wherein a search rule is predetermined for the direction of the dragging movement. The computer further displays the child objects, wherein how many of the child objects are displayed is based on a distance of the dragging movement in the drag event.

BACKGROUND

The present invention relates generally to searching and displayingobjects, and more particularly to searching and displaying child objectsof a parent object based on a drag event.

It is time-consuming and troublesome to select one or more desiredobjects from a lengthy object list. It is desirable that the one or moredesired objects are selected readily and quickly from the list. Existingtechnologies provide a display of all objects; for example, Microsoft®PowerPoint® provides a list of shapes.

SUMMARY

A method for searching and displaying child objects of a parent objectbased on a drag event is provided. The method is implemented by acomputer. The method includes displaying a parent object, in response tothat a user selects the parent object. The method further includesreceiving from the user a drag event on the parent object. The methodfurther includes searching child objects, based on a direction of adragging movement in the drag event, wherein the child objects areassociated with the parent object, wherein a search rule ispredetermined for the direction of the dragging movement. The methodfurther includes displaying the child objects, wherein how many of thechild objects are displayed is based on a distance of the draggingmovement in the drag event. The method further includes displaying, bythe computer, one or more arrows in directions of dragging movements onthe parent object. The method further includes displaying, by thecomputer, search rules for respective ones of the directions of thedragging movements on the parent object. The method further includesdisplaying, by the computer, the child objects in an order ofsatisfaction degrees of a search rule. The method further includesreceiving from the user, by the computer, a select event on at least oneof the child objects. The method further includes selecting, by thecomputer, the at least one of the child objects along with the parentobject. The method further includes receiving from the user, by thecomputer, a drop event on the parent object. The method further includesperforming, by the computer, a task for the parent object and the atleast one of the child objects. In the method, in the drag event thecomputer receives multiple dragging movements in the direction within apredetermined time period. In the method, the computer displays adifferent number of the child objects and different information in eachof the multiple dragging movements.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a diagram illustrating an approach of searching and displayingchild objects of a parent object based on a drag event, in accordancewith one embodiment of the present invention.

FIGS. 2(A)-2(F) shows an example of an approach of searching anddisplaying child objects of a parent object based on a drag event, inaccordance with one embodiment of the present invention.

FIG. 3 is a flowchart showing operational steps for searching anddisplaying child objects of a parent object based on a drag event, inaccordance with one embodiment of the present invention.

FIG. 4 is a diagram illustrating components of a computer deviceimplementing an approach of searching and displaying child objects of aparent object based on a drag event, in accordance with one embodimentof the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention provide a computer-implementedmethod, a computer program product, and a computer system for searchingand displaying child objects of a parent object based on a drag event.When a parent object is selected and is in dragged state, child objectswhich are associated with the parent object are made to appear in anorder of satisfaction degrees of predetermined search rules, moreparticularly based on dragging directions and distances.

When a viewable parent object is selected, an action (such as draggingby a user), which is registered in advance for the parent object, isexecuted for the selected parent object. The search rules vary dependingon the direction of the movement of the action. The number of childobjects which are displayed varies, depending on the distance of themovement. Within a predetermined time period, when the dragging isperformed for twice or more in the same direction, the number of childobjects displayed will change and displayed information will changebetween two dragging operations.

FIG. 1 is a diagram illustrating an approach of searching and displayingchild objects of a parent object based on a drag event, in accordancewith one embodiment of the present invention. A computer displays parentobject 101. When the computer receives a drag event and parent object101 is in a dragged stage, the computer displays one or more arrows fordirections of dragging operations and displays rules for respectivedirections. For the illustration purpose, FIG. 1 shows two arrows fortwo directions of dragging operations—right upward arrow 102 and rightdownward arrow 103; FIG. 1 also shows a rule for moving right upward ina dragging operation and a rule for moving right downward in a draggingoperation.

For the illustration purpose, FIG. 1 shows that the computer displayschild object A (numeral 104) along with parent object 101 when thecomputer receives a dragging operation in the right upward direction.FIG. 1 also shows that the computer displays child object B (numeral105), along with parent object 101 and child object A 104 (which hasbeen displayed earlier), when receiving a further dragging operation inthe right upward direction. The computer receives a select event onchild object B (numeral 105). When the computer receives a drop event,the computer selects parent object 101 and child object B (numeral 105)for performing a task.

For the illustration purpose, FIG. 1 shows that the computer displayschild object 1 (numeral 106) along with parent object 101 when thecomputer receives a dragging operation of in the right downwarddirection. FIG. 1 also shows that the computer displays child object 2(numeral 107), along with parent object 101 and child object 1 106(which has been displayed earlier), when receiving a further draggingoperation in the right upward direction. The computer receives a selectevent on child object 2 (numeral 107). When the computer receives a dropevent, the computer selects parent object 101 and child object 2 107 forperforming a task.

The approach of searching and displaying child objects of a parentobject based on a drag event may be used for various applications, suchas a mail tool, a software package for creating electronicpresentations, and a search program. Table 1 provides examples ofimplementing the present invention in different applications.

TABLE 1 Child Objects Dragging Direction: Dragging Direction:Applications Parent Objects Action right upward right downward Mail ToolMail Add a destination Search Rule: Search Rule: Destination to thedestination Persons simultaneous Persons of the same field sent toproject Display Rule: Display Rule: Order of frequency Order offrequency Package for Shapes Pull- Insert a shape Search Rule: SearchRule: Creating Down Icon Rectangular shapes Speech bubbles ElectronicDisplay Rule: Display Rule: Presentations Order of frequency Order offrequency Search Magnifying View the search Search and Display Searchand Display Program Glass Icon result Rule: Order of high Rule: Order ofupdate degree of relevance dates of relevance

FIGS. 2(A)-2(F) show an example of an approach of searching anddisplaying child objects of a parent object based on a drag event, inaccordance with one embodiment of the present invention. FIGS. 2(A)-2(F)show implementation of the approach in an email application.

FIG. 2(A) shows that the email application displays a mail destinationname—recipient#1@domain.com (numeral 201). Recipient#1@domain.com(numeral 201) is a parent object and associated with child objects. Thechild objects are other mail destination names which are relevant torecipient#1@domain.com (numeral 201). When recipient#1@domain.com(numeral 201) is selected by a user and is in the dragged state, theemail application displays arrows 202 and 204 and also displays searchand display rules. The arrows guide the directions of draggingoperations; for example, arrow 202 is left upward and arrow 204 is rightupward. The email application displays search and display rule 203 forarrow 202; in this example, the rule is “order of frequency ofsimultaneously sent”. The email application displays search and displayrule 205 for arrow 204; in this example, the rule is “order of frequencyof a same project”.

FIG. 2(B) shows that the email application displays a child object afterreceiving a distance of a dragging movement in a drag event from theuser. In the example shown in FIG. 2(B), the email application displaysa first child object, recipient#2@domain.com (numeral 206), based onsearch and display rule 203.

FIG. 2(C) shows that the email application displays a child object afterreceiving a distance of a further dragging movement in the drag eventfrom the user. In the example shown in FIG. 2(C), the email applicationadditionally displays a second child object, recipient#3@domain.com(numeral 207), based on search and display rule 203.

FIG. 2(D) shows that the email application displays a child object afterreceiving a distance of another further dragging movement in the dragevent from the user. In the example shown in FIG. 2(D), the emailapplication displays a third child object, recipient#4@domain.com(numeral 208), based on search and display rule 203.

FIG. 2(E) shows that the email application receives a select event fromthe user. In the example shown in FIG. 2(E), recipient#3@domain.com(numeral 207) is selected by a user. FIG. 2(F) shows that, afterreceiving a drop event, the email application usesrecipient#1@domain.com (numeral 201) and recipient#3@domain.com (numeral207) as email destinations.

FIG. 3 is a flowchart showing operational steps for searching anddisplaying child objects of a parent object based on a drag event, inaccordance with one embodiment of the present invention. At step 301, acomputer displays a parent object. In an example shown in FIG. 1, thecomputer displays parent object 101. In another example shown in FIG.2(A), an email application displays an email destinationrecipient#1@domain.com (numeral 201) which is a parent object.

At step 302, the computer receives from a user a drag event on theparent object. In the example shown in FIG. 1, the computer displaysright upward arrow 102 and right downward arrow 103 when the computerreceives a drag event on parent object 101. In the example shown in FIG.1, the computer also displays rules for respective directions. Inanother example shown in FIG. 2(A), the email application displaysarrows 202 and 204 which guide the directions of dragging operationswhen the email application receives from a user a drag event on theemail destination recipient#1@domain.com (numeral 201). In anotherexample shown in FIG. 2(A), the email application also displays rule 203for arrow 202 and rule 205 for arrow 204.

At step 303, the computer searches for child objects, based on adirection of a dragging movement. At step 304, the computer displays thechild objects, based on a distance of the dragging movement. In theexample shown in FIG. 1, when the computer receives a dragging operationin the right upward direction, the computer displays child object A(numeral 104); when the computer receives a further dragging operationin the right upward direction, the computer displays child object B(numeral 105). Also in the example shown in FIG. 1, when the computerreceives a dragging operation in right downward direction, the computerdisplays child object 1 (numeral 106); when the computer receives afurther dragging operation in the right downward direction, the computerdisplays child object 2 (numeral 107). In another example shown in FIGS.2(B)-2(D), the email application displays a first child object(recipient#2@domain.com 206) after receiving a distance of a draggingmovement in a drag event from the user, displays a second child object(recipient#3@domain.com 207) after receiving a distance of a furtherdragging movement, and displays a third child object(recipient#3@domain.com 208) after receiving a distance of a yet furtherdragging movement.

At step 305, the computer receives a select event on at least one of thechild objects. At step 306, the computer selects the at least one of thechild objects. In the example shown in FIG. 1, the computer receives aselect event on child object B (numeral 105) and selects child object B(numeral 105) in a case of the right upward dragging operation; thecomputer receives a select event on child object 2 (numeral 107) selectschild object 2 (numeral 107) in a case of the right downward draggingoperation. In another example shown in FIG. 2(E), the email applicationreceives a select event on a child object (recipient#3@domain.com 207)and selects the child object along with the parent object (recipient#1@domain.com 201).

At step 307, the computer receives a drop event on the parent object. Atthis step, the computer selects the parent object and the one or morechild objects. At step 308, the computer performs a task for the parentobject and the one or more child objects (which are selected at step307). In the example shown in FIG. 1, the computer selects parent object101 and child object B (numeral 105) for performing a task uponreceiving a drop event, in a case of the right upward draggingoperation. Also shown in FIG. 1, the computer selects parent object 101and child object 2 (numeral 107) for performing a task upon receiving adrop event, in a case of the right downward dragging operation. Inanother example shown in FIG. 2(F), the email application selects theparent object recipient#1@domain.com (numeral 201) and the child objectrecipient#3@domain.com (numeral 207) as email destinations uponreceiving a drop event on the parent object.

FIG. 4 is a diagram illustrating components of computer device 400implementing an approach of searching and displaying child objects of aparent object based on a drag event, in accordance with one embodimentof the present invention. It should be appreciated that FIG. 4 providesonly an illustration of one implementation and does not imply anylimitations with regard to the environment in which differentembodiments may be implemented. The computer device may be anyelectronic device or computing system capable of receiving input from auser, executing computer program instructions, and communicating withanother electronic device or computing system via a network.

Referring to FIG. 4, computer device 400 includes processor(s) 420,memory 410, and tangible storage device(s) 430. In FIG. 4,communications among the above-mentioned components of computer device400 are denoted by numeral 490. Memory 410 includes ROM(s) (Read OnlyMemory) 411, RAM(s) (Random Access Memory) 413, and cache(s) 415. One ormore operating systems 431 and one or more computer programs 433 resideon one or more computer readable tangible storage device(s) 430.Computer device 400 further includes I/O interface(s) 450. I/Ointerface(s) 450 allows for input and output of data with externaldevice(s) 460 that may be connected to computer device 400. Computerdevice 400 further includes network interface(s) 440 for communicationsbetween computer device 400 and a computer network.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device, such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network(LAN), a wide area network (WAN), and/or a wireless network. The networkmay comprise copper transmission cables, optical transmission fibers,wireless transmission, routers, firewalls, switches, gateway computersand/or edge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++, and conventionalprocedural programming languages, such as the “C” programming language,or similar programming languages. The computer readable programinstructions may execute entirely on the user's computer, partly on theuser's computer, as a stand-alone software package, partly on the user'scomputer and partly on a remote computer, or entirely on the remotecomputer or server. In the latter scenario, the remote computer may beconnected to the user's computer through any type of network, includinga local area network (LAN) or a wide area network (WAN), or theconnection may be made to an external computer (for example, through theInternet using an Internet Service Provider). In some embodiments,electronic circuitry including, for example, programmable logiccircuitry, field-programmable gate arrays (FPGA), or programmable logicarrays (PLA) may execute the computer readable program instructions byutilizing state information of the computer readable programinstructions to personalize the electronic circuitry in order to performaspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture, including instructions which implement aspectsof the function/act specified in the flowchart and/or block diagramblock or blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus, or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the FIGs illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the FIGs. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

What is claimed is:
 1. A method for searching and displaying childobjects of a parent object based on a drag event, the method comprising:displaying, by a computer, a parent object, in response to that a userselects the parent object; receiving from the user, by the computer, adrag event on the parent object; searching, by the computer, childobjects, based on a direction of a dragging movement in the drag event,wherein the child objects are associated with the parent object, whereina search rule is predetermined for the direction of the draggingmovement; displaying, by the computer, the child objects, wherein howmany of the child objects are displayed is based on a distance of thedragging movement in the drag event; displaying, by the computer, one ormore arrows in directions of dragging movements on the parent object;displaying, by the computer, search rules for respective ones of thedirections of the dragging movements on the parent object; displaying,by the computer, the child objects in an order of satisfaction degreesof a search rule; receiving from the user, by the computer, a selectevent on at least one of the child objects; selecting, by the computer,the at least one of the child objects along with the parent object;receiving from the user, by the computer, a drop event on the parentobject; and performing, by the computer, a task for the parent objectand the at least one of the child objects; wherein in the drag event thecomputer receives multiple dragging movements in the direction within apredetermined time period; and wherein the computer displays a differentnumber of the child objects and different information in each of themultiple dragging movements.